package com.blue.ocean.hole.scheduling;

import java.util.Date;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

/**
 * 背景：
 * 最近在codeReview的时候，发现有一些同事在设置定时任务的时候喜欢用@Scheduled注解，但是没有对定时任务线程池做一些配置，
 * 其实在这种情况下会导致定时任务之间相互影响，
 * 因为用@Scheduled修饰的所有任务默认用的都是一个线程。定时任务执行时间不准确怎么办
 *
 * 那接下来我们重点看下
 * 1.从源码角度解释为什么会发生这种情况？
 * 2.如何解决@Scheduled单线程问题？
 */
@Component
public class SchedulingDemo {

//    @Scheduled(fixedDelay = 2000)
//    public void handle1() throws InterruptedException {
//        System.out.println("执行 handle1 任务 " + new Date());
//        Thread.sleep(5000);
//    }
//
//
//    @Scheduled(fixedDelay = 2000)
//    public void handle2() throws InterruptedException {
//        System.out.println("执行 handle2 任务 " + new Date());
//        Thread.sleep(1000);
//    }
}
